package com.catazy.wanandroid.common_base.base

import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment

/**
 * 作者: Tao
 * 日期: 2024/4/10
 * 时间: 11:08
 * 描述: Fragment 基类
 */
abstract class BaseFragment : Fragment() {

        private var isLoaded = false

        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            initView()
            observeViewModel()
        }

        override fun onResume() {
            super.onResume()
            // 如果 Fragment 没有加载过并且没有隐藏 则加载数据
            if (!isLoaded && !isHidden) {
                lazyLoad()
                isLoaded = true
            }
        }

        /**
        * 初始化 View
        */
        abstract fun initView()

        /**
        * 懒加载
        */
        abstract fun lazyLoad()

        open fun observeViewModel() {
        }
}